package com.application.fabric.蓝桥杯;

public class 第四题 {
    public static void main(String[] args) {
        /**
         * 小蓝有 30 个数，分别为：99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30,
         * 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77 。
         * 　　小蓝可以在这些数中取出两个序号不同的数，共有 30*29/2=435 种取法。
         * 　　请问这 435 种取法中，有多少种取法取出的两个数的乘积大于等于 2022 。
         * */
        /*想一想全排列 然后验证
        * */
        int[] res = {99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30,
                11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77};
        allarr(res);
        System.out.println(count);
    }

    /*全排列
     * */
    private static int count=0;
    public static void allarr(int[] arr){
        /*两个指针*/

        for (int i1=0;i1<arr.length;i1++){
            for (int i2=i1+1;i2<arr.length;i2++){
                if (deal(arr[i1],arr[i2])){
                    ++count;
                }
            }
        }
    }

    public static Boolean deal(int a1,int a2){
        if (a2*a1>=2022){
            return true;
        }
        else {
            return false;
        }
    }
}
